package com.jeequan.jeepay.core.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeequan.jeepay.core.model.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.*;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

 /**
 * 订单表;
 * @author : wondream322@gmail.com
 * @date : 2023-8-18
 */
@ApiModel(value = "订单表",description = "")
@TableName("pay_order")
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class PayOrderDO extends BaseModel implements Serializable,Cloneable{

     //gw
     public static final LambdaQueryWrapper<PayMemberDO> gw(){
         return new LambdaQueryWrapper<>();
     }

     /** 主键 */
    @ApiModelProperty(value = "主键",notes = "")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id ;
    /** 用户id */
    @ApiModelProperty(value = "用户id",notes = "")
    private Integer memberId ;
     /** 账本类型 */
     @ApiModelProperty(value = "账本类型",name = "账本类型",notes = "")
     private Integer balanceType ;
     /** 状态：几类账户（一类、二类） */
     @ApiModelProperty(value = "状态：几类账户（一类、二类）",name = "状态：几类账户（一类、二类）",notes = "")
     private Integer balanceLevel ;
    /** 支付渠道id */
    @ApiModelProperty(value = "支付渠道id",notes = "")
    private Integer productId ;
    /** 支付渠道中文名称 */
    @ApiModelProperty(value = "支付渠道中文名称",notes = "")
    private String productName ;
    /** 通道id */
    @ApiModelProperty(value = "通道id",notes = "")
    private Integer channelId ;
    /** 供应商通道英文编码 */
    @ApiModelProperty(value = "供应商通道英文编码",notes = "")
    private String channelCode ;
    /** 供应商通道中文名称 */
    @ApiModelProperty(value = "供应商通道中文名称",notes = "")
    private String channelTitle ;
    /** 支付渠道商家号 */
    @ApiModelProperty(value = "支付渠道商家号",notes = "")
    private String merchantNo ;
    /** 支付渠道密钥 */
    @ApiModelProperty(value = "支付渠道密钥",notes = "")
    private String signKey ;
    /** 系统订单号 */
    @ApiModelProperty(value = "系统订单号",notes = "")
    private String orderId ;
    /** 商户订单号（下游） */
    @ApiModelProperty(value = "商户订单号（下游）",notes = "")
    private String outTradeId ;
    /** 上游订单号 */
    @ApiModelProperty(value = "上游订单号",notes = "")
    private String channelOrderId ;
    /** 商家异步通知地址 */
    @ApiModelProperty(value = "商家异步通知地址",notes = "")
    private String notifyUrl ;
    /**  */
    @ApiModelProperty(name = "",notes = "")
    private BigDecimal amount ;
    /**  */
    @ApiModelProperty(name = "",notes = "")
    private BigDecimal fee ;
    /**  */
    @ApiModelProperty(name = "",notes = "")
    private BigDecimal realAmount ;
    /** 成本 */
    @ApiModelProperty(value = "成本",notes = "")
    private BigDecimal cost ;
    /** 成本费率 */
    @ApiModelProperty(value = "成本费率",notes = "")
    private BigDecimal costRate ;
    /** 手机号 */
    @ApiModelProperty(value = "手机号",notes = "")
    private String mobile ;
    /** 邮箱 */
    @ApiModelProperty(value = "邮箱",notes = "")
    private String email ;
    /** 额外的参数 */
    @ApiModelProperty(value = "额外的参数",notes = "")
    private String extend ;
    /** 备注 */
    @ApiModelProperty(value = "备注",notes = "")
    private String remark ;
    /** 订单状态: 0-未支付 1-已支付未返回 2-已支付已返回 3-超时订单 4-other */
    @ApiModelProperty(value = "订单状态: 0-未支付 1-已支付未返回 2-已支付已返回 3-超时订单 4-other",notes = "")
    private Integer state ;
    /** 创建时间 */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @ApiModelProperty(value = "创建时间",name = "创建时间",notes = "")
    private Date createTime ;
    /** 更新时间 */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @ApiModelProperty(value = "更新时间",name = "更新时间",notes = "")
    private Date updateTime ;
    /** 订单支付成功时间 */
    @ApiModelProperty(value = "订单支付成功时间",notes = "")
    private Integer paySuccessTime ;
    /** 商家页面通知地址 */
    @ApiModelProperty(value = "商家页面通知地址",notes = "")
    private String returnUrl ;
    /** 服务器来源地址 */
    @ApiModelProperty(value = "服务器来源地址",notes = "")
    private String originUrl ;
    /** 已补发次数 */
    @ApiModelProperty(value = "已补发次数",notes = "")
    private Integer notifyNum ;
    /** 费率类型：按单笔收费0，按比例收费：1 */
    @ApiModelProperty(value = "费率类型：按单笔收费0，按比例收费：1",notes = "")
    private Integer rateType ;
    /** 到账时间 0-to 1-t1 */
    @ApiModelProperty(value = "到账时间 0-to 1-t1",notes = "")
    private Integer handleTime ;
    
}